package br.com.jw.controle;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.sql.SQLException;
import br.com.jw.dao.ProdutosDao;
import br.com.jw.jdbc.Pool;
import br.com.jw.modelo.Produto;

public class ThreadProdutos extends Thread{
	private Socket socket;
	int  resultado =0;
	boolean aux = false;
	private Pool pool=new Pool();
	private ProdutosDao produtoDao = new ProdutosDao(pool);
	Produto produto = new Produto();
	public ThreadProdutos(Socket socket){
		this.socket=socket;
	}
    public void run(){
    	try {
			DataInputStream in=new DataInputStream(socket.getInputStream());
			DataOutputStream out=new DataOutputStream(socket.getOutputStream());
			String modo=in.readUTF();
			
		    if(modo.equals("listarProdutos")){
		    //dao=new ProdutosDao(pool);
		    String dados="";
			for(Produto p: produtoDao.listProdutos()){
				dados+=p.getPro_id()+",";
				dados+=p.getPro_nome()+",";
				dados+=p.getPro_valor()+",";
				dados+=p.getPro_qtde()+",";
			}			
			out.writeUTF(dados);
			out.writeUTF("Sucesso no envio de dados");
					
		    in.close();  
		    out.close();  
		    socket.close(); 
		    }
		    
		    else if(modo.equals("excluirProduto")){
		    	
		    	produto.setPro_id(in.readInt());
		        
		    	aux = produtoDao.excluirProduto(produto.getPro_id());
		    	
		    	out.writeBoolean(aux);
		    	
		    	out.close();
				in.close();
				socket.close();
		    }
		    else if(modo.equals("alterarProduto")){
		    	produto.setPro_id(in.readInt());
		    	produto.setPro_nome(in.readUTF());
		    	produto.setPro_valor(in.readDouble());
		    	produto.setPro_qtde(in.readInt());
				resultado = produtoDao.alterarProduto(produto);
				
				out.writeInt(resultado);
				
				out.close();
				in.close();
				socket.close();
		    	
		    }
		    else if(modo.equals("cadastrarProduto")){
		    	produto.setPro_nome(in.readUTF());
		    	produto.setPro_valor(in.readDouble());
		    	produto.setPro_qtde(in.readInt());
				resultado = produtoDao.cadastrarProduto(produto);
				
				out.writeInt(resultado);
				
				out.close();
				in.close();
				socket.close();
		    }
		   
    	} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
}
